function getRotationMatrix4(pointA, pointB) {
    //向量AB
    const vector2 = Cesium.Cartesian3.subtract(
        pointB,
        pointA,
        new Cesium.Cartesian3()
    );
    //归一化
    const normal = Cesium.Cartesian3.normalize(vector2, new Cesium.Cartesian3());
    //旋转矩阵 rotationMatrixFromPositionVelocity源码中有，并未出现在cesiumAPI中
    const rotationMatrix3 = Cesium.Transforms.rotationMatrixFromPositionVelocity(
        pointA,
        normal,
        Cesium.Ellipsoid.WGS84
    );
    const orientation = Cesium.Quaternion.fromRotationMatrix(rotationMatrix3);

    // // 验证测试
    //   const distance = Cesium.Cartesian3.distance (pointB, pointA)
    //   const p1 = Cesium.Matrix3.multiplyByVector(rotationMatrix3, new Cesium.Cartesian3(distance,0,0), new Cesium.Cartesian3())
    //   const p2 = Cesium.Cartesian3.add (p1, pointA, new Cesium.Cartesian3())
    //   const m3 = Cesium.Matrix3.inverse (rotationMatrix3, new Cesium.Matrix3())
    //   const p3 = Cesium.Matrix3.multiplyByVector(m3, vector2, new Cesium.Cartesian3())
    //   console.log(p3, distance)
    //   console.log(p2, pointB)

    const modelMatrix4 = Cesium.Matrix4.fromRotationTranslation(
        rotationMatrix3,
        pointA
    );
    //点B的模型矩阵
    //const modelMatrix4 = Cesium.Matrix4.fromRotationTranslation(rotationMatrix3, pointB);
    const hpr = Cesium.HeadingPitchRoll.fromQuaternion(orientation);
    return modelMatrix4;
}
